package 遍历器;

import 抽象语法树节点.*;
import 抽象语法树节点.表达式类.*;
import 抽象语法树节点.语句类.变量定义语句;
import 抽象语法树节点.语句类.块语句;
import 抽象语法树节点.语句类.赋值语句;
import 抽象语法树节点.语句类.返回语句;

public abstract class 抽象语法树基础监听器 {

    public void 进入编译单元(编译单元 节点) {}

    public void 退出编译单元(编译单元 节点) {}

    public void 进入抽象语法树(抽象语法树 节点) {}

    public void 退出抽象语法树(抽象语法树 节点) {}

    public void 进入结构体定义(结构体定义 节点) {}

    public void 退出结构体定义(结构体定义 节点) {}
    
    public void 进入结构体成员定义(结构体成员变量定义 节点) {}
    
    public void 退出结构体成员定义(结构体成员变量定义 节点) {}

    public void 进入方法参数(方法参数 节点) {}

    public void 退出方法参数(方法参数 节点) {}

    public void 进入方法定义(方法定义 节点) {}

    public void 退出方法定义(方法定义 节点) {}

    public void 进入类型(类型 节点) {}

    public void 退出类型(类型 节点) {}

    public void 进入表达式(表达式 节点) {}

    public void 退出表达式(表达式 节点) {}

    public void 进入表达式列表(表达式列表 节点) {}

    public void 退出表达式列表(表达式列表 节点) {}

    public void 进入语句(语句 节点) {}

    public void 退出语句(语句 节点) {}


    // 语句

    public void 进入变量定义语句(变量定义语句 节点) {}

    public void 退出变量定义语句(变量定义语句 节点) {}

    public void 进入块语句(块语句 节点) {}

    public void 退出块语句(块语句 节点) {}

    public void 进入赋值语句(赋值语句 节点) {}

    public void 退出赋值语句(赋值语句 节点) {}

    public void 进入返回语句(返回语句 节点) {}

    public void 退出返回语句(返回语句 节点) {}


    // 表达式

    public void 进入加法表达式(加法表达式 节点) {}

    public void 退出加法表达式(加法表达式 节点) {}

    public void 进入成员访问表达式(成员访问表达式 节点) {}
    
    public void 退出成员访问表达式(成员访问表达式 节点) {}
    
    public void 进入整数字面量表达式(整数字面量表达式 节点) {}

    public void 退出整数字面量表达式(整数字面量表达式 节点) {}

    public void 进入方法调用表达式(方法调用表达式 节点) {}
    
    public void 退出方法调用表达式(方法调用表达式 节点) {}
    
    public void 进入符号引用表达式(符号引用表达式 节点) {}

    public void 退出符号引用表达式(符号引用表达式 节点) {}
}
